package com.holly.unit.bpmn.activiti.pojo;

import com.holly.unit.core.pojo.request.BaseRequest;
import com.holly.unit.scanner.api.annotation.field.ChineseDescription;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;

/**
 * 类描述: 任务节点审批驳回至指定历史节点 参数封装
 *
 * @author fxr
 * @version 1.0.0
 * @date 2022/3/8 15:23
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class ProcessTaskBackToTaskRequest extends BaseRequest {

    @NotNull(message = "任务id不能为空", groups = {backToTask.class})
    @ChineseDescription("任务id")
    String id;

    @NotNull(message = "驳回指定节点key不能为空", groups = {backToTask.class})
    @ChineseDescription("驳回指定节点key")
    String backTaskKey;

    @NotNull(message = "流程实例id不能为空", groups = {backToTask.class})
    @ChineseDescription("流程实例id")
    String procInstId;

    @NotNull(message = "流程定义id不能为空", groups = {backToTask.class})
    @ChineseDescription("流程定义id")
    String procDefId;

    @NotNull(message = "原节点审批人不能为空", groups = {backToTask.class})
    @ChineseDescription("原节点审批人")
    String assignees;

    @NotNull(message = "优先级不能为空", groups = {backToTask.class})
    @ChineseDescription("优先级")
    Integer priority;

    @NotNull(message = "意见评论不能为空", groups = {backToTask.class})
    @ChineseDescription("意见评论")
    String comment;

    @NotNull(message = "是否发送站内消息", groups = {backToTask.class})
    @ChineseDescription("站内消息 是-true 否-false")
    Boolean sendMessage;
    @NotNull(message = "是否发送短信通知", groups = {backToTask.class})
    @ChineseDescription("短信消息 是-true 否-false")
    Boolean sendSms;
    @NotNull(message = "是否发送邮件通知", groups = {backToTask.class})
    @ChineseDescription("邮件通知 是-true 否-false")
    Boolean sendEmail;

    public @interface backToTask{}

}
